



 重绘方法 setNeedDisplay

 CGRect 是有origin和size两个成员对象的结构体。

与iOS不同的是坐标原点在左下角;
PDF和PostScript都是使用标准的笛卡尔坐标的。当向上移动页面，y坐标增加。
如果要坐标原点在屏幕左上方，这样的视图被称作是flipped




### NSBezierPath 

可以绘制线条、椭圆和多边形

1.视图填充颜色示例：

- (void)drawRect:(NSRect)dirtyRect {
    [super drawRect:dirtyRect];
    
    NSRect bounds = [self bounds];
    [[NSColor greenColor]setFill];
    [NSBezierPath fillRect:bounds];
}



2. 让view被scrollView包裹。
    选中视图 -> Embed -> Scroll View 



3.坐标系转换

[fromView convertPoint:aPoint toView:toView];
就是将fromView坐标系中的一个点转换为toView中的一个点

1. 如fromView是nil，则返回Zero。

2、如果toView是nil则相当于：[fromView convertPoint:aPoint toView:selfView.window];
所以如果要将坐标转为相对于窗口的坐标

同理:

[selfView convertPoint:aPoint fromView:fromView];
就是将点从fromView转换到当前selfView视图上，如果fromView为nil，则是转换的相对窗口的坐标



4. autoscroll

当鼠标拖动到scrollView的边缘就不会再滚动了。为了解决这一问题，采用方法autoscroll。
注意："此时自动滚动只在拖动图片时发生。"为实现平滑的自动滚动，大多数开发者建立一个定时器，当用户拖动视图时，周期向视图发送autoscroll：消息

[self autoscroll:theEvent];






